//
//  BaseTableViewCell.h
//  PhotographyStudi
//
//  Created by 叶一枫 on 2017/5/10.
//  Copyright © 2017年 叶一枫. All rights reserved.
//

#import <UIKit/UIKit.h>

typedef enum : NSUInteger {
    //------------------带有图片--------------------//
    BASECELL = 0         , //基本类型cell布局：只有一个title
    DETAILCELL           , //详情类型cell布局：title + detail
    DETAILTIMECELL       , //详情类型cell布局：title + detail + time
    
    //------------------没有图片--------------------//
    BASECELLSINGLE       , //基本类型cell布局：只有一个title
    DETAILCELLSINGLE     , //详情类型cell布局：title + detail
    DETAILTIMECELLSINGLE , //详情类型cell布局：title + detail + time
    
} CELLENUM;


/**
 因为layoutsubview 多次执行，想修改某些元素frame  需要调用block修改

 @param itemImageView 图片控件
 @param itemLabel item标题
 @param detailLaebl item的详细信息
 @param timeLaebl item的时间
 */
typedef void(^updateUIBlock)(UIImageView* itemImageView,UILabel* itemLabel,UILabel *detailLaebl,UILabel *timeLaebl);

@interface BaseTableViewCell : UITableViewCell


@property(nonatomic,strong)UIImageView *itemImageView;
@property(nonatomic,strong)UILabel *itemLabel;
@property(nonatomic,strong)UILabel *detailLaebl;
@property(nonatomic,strong)UILabel *timeLaebl;

//是否允许更新UI，默认NO
@property(nonatomic)BOOL updateUI;
@property(nonatomic,strong)UIView *containView;
@property(nonatomic,assign)CELLENUM UIType;
@property(nonatomic,copy)updateUIBlock refreshUI;

/**
 自动以cell 初始化方法

 @param style cell的类型
 @param reuseIdentifier 重用标识
 @param UIType cell布局种类
 @return self
 */
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier UIType:(CELLENUM)UIType;


/**
 字典型数据加载方式:用于子类继承使用

 @param modelDic 字典型数据
 @param type 用于区分某个特殊类型做特殊处理
 */
-(void)loadModelDic:(NSDictionary*)modelDic type:(NSString*)type;

/**
 数组型数据加载方式:用于子类继承使用

 @param modelArr 数组型数据
 @param type 用于区分某个特殊类型做特殊处理
 */
-(void)loadModelArr:(NSDictionary*)modelArr type:(NSString*)type;



@end
